/*--------------------------------------------------------------------------
  Project::HEXAGON FLIGHT SIMULATOR
  Package::Input
  Class::Keyboard
  File Keyboard.h
  --------------------------------------------------------------------------
  * METHODS AND CLASS PARAMETERS


  --------------------------------------------------------------------------
  * FUNCTIONS DESCRIPTION
  
  --------------------------------------------------------------------------
  * COPYRIGHT

  --------------------------------------------------------------------------
  * INFO ABOUT AUTHOR AND VERSIONS
  Author:	Tino Giorgio	Data: 
  Rev1:			Data:

  --------------------------------------------------------------------------
  * E-MAIL & CONTACTS

  GIORGIO TINO:	tinoshi@libero.it
	           	shapeofangels@hotmail.com
	            giorgio.tino@studenti.polito.it

  --------------------------------------------------------------------------*/

#if !defined(KEYBOARD_H)
#define KEYBOARD_H

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/* Standard includes */
#include <stdio.h>

/* PLIB includes */
#include <plib/ul.h>
#include <plib/pw.h> //if using GLUT, only for PW_UP and PW_DOWN...
#include <plib/js.h>


class Keyboard  
{
public:
	Keyboard();
	virtual ~Keyboard();

	void read( int key, int updn, int x, int y );
	int read();

	int isWorking();

	char* getKeyIsDown();
	
	int isPressed(int key);
	int isPressedAny();

private:

	// for each key value 1 means pressed value 0 means not pressed
	char keyIsDown [ 512 ];

};

#endif // !defined(KEYBOARD_H)
